package com.stary.code.springboot;

import java.nio.charset.Charset;

/**
 * <p>定义常量</p>
 * @author stary {@link stary1993@qq.com}
 * @since 2018-6-29
 */
public class Constants {
	/**
	 * 空格
	 */
	public static final String SPACE = " ";
	/**
	 * 下划线
	 */
	public static final String UNDERLINE = "_";
	/**
	 * 短线
	 */
	public static final String LINE = "-";
	/**
	 * 默认的临时文件路径
	 */
	public static final String JAVA_TMPDIR = "java.io.tmpdir";
	/**
	 * 编码集 UTF-8
	 */
	public static final String UTF8 = Charset.forName("UTF-8").name();
	/**
	 * WAR
	 */
	public static final String WAR = "war";
	/**
	 * 点
	 */
	public static final String POINT = ".";
	/**
	 * 1.x
	 */
	public static final String SPRINGBOOT_1 = "1";
	/**
	 * 2.x
	 */
	public static final String SPRINGBOOT_2 = "2";
	/**
	 * .RELEASE
	 */
	public static final String SPRINGBOOT_RELEASE = ".RELEASE";

	/**
	 * java文件后缀
	 */
	public static final String JAVA_SUFFIX = ".java";
	/**
	 * properties文件后缀
	 */
	public static final String PROPERTIES_SUFFIX = ".properties";
	/**
	 * xml文件后缀
	 */
	public static final String XML_SUFFIX = ".xml";
	/**
	 * vm文件后缀
	 */
	public static final String VM_SUFFIX = ".vm";
	/**
	 * sql文件后缀
	 */
	public static final String SQL_SUFFIX = ".sql";
	/**
	 * word doc文件后缀
	 */
	public static final String DOC_SUFFIX = ".doc";

	/**
	 * 加载classpath目录下的vm文件 KEY
	 */
	public static final String VM_LOADPATH_KEY = "file.resource.loader.class";
	/**
	 * 加载classpath目录下的vm文件 VALUE
	 */
	public static final String VM_LOADPATH_VALUE = "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader";

	/**
	 * pom.xml模板
	 */
	public static final String TEMPLATE_POM = "/templates/pom.xml";
	/**
	 * pom.xml名
	 */
	public static final String POM = "pom";
	/**
	 * logback-spring.xml模板
	 */
	public static final String TEMPLATE_LOGBACK_SPRING = "/templates/logback/logback-spring.xml";
	/**
	 * logback-spring
	 */
	public static final String LOGBACK_SPRING = "logback-spring";
	/**
	 * SpringBoot 开发启动器类名
	 */
	public static final String APPLICATION = "Application";
	/**
	 * SpringBoot 开发启动器模板
	 */
	public static final String TEMPLATE_APPLICATION = "/templates/application.java";
	/**
	 * SpringBoot 开发启动器测试类名
	 */
	public static final String APPLICATION_TESTS = "ApplicationTests";
	/**
	 * SpringBoot 开发启动器测试类模板
	 */
	public static final String TEMPLATE_APPLICATION_TESTS = "/templates/test/applicationTests.java";
	/**
	 * SpringBoot web启动器类名
	 */
	public static final String SPRING_BOOT_APPLICATION = "SpringBootStartApplication";
	/**
	 * SpringBoot web启动器模板
	 */
	public static final String TEMPLATE_SPRING_BOOT_APPLICATION = "/templates/springBootStartApplication.java";
	/**
	 * application.properties 配置属性文件模板
	 */
	public static final String TEMPLATE_APPLICATION_PRO = "/templates/application.properties";
	/**
	 * application.properties名
	 */
	public static final String APPLICATION_PRO = "application";
	/**
	 * application-dev.properties 配置属性文件模板
	 */
	public static final String TEMPLATE_APPLICATION_PRO_DEV = "/templates/application-dev.properties";
	/**
	 * application-dev.properties名
	 */
	public static final String APPLICATION_PRO_DEV = "application-dev";
	/**
	 * application-prod.properties 配置属性文件模板
	 */
	public static final String TEMPLATE_APPLICATION_PRO_PROD = "/templates/application-prod.properties";
	/**
	 * application-prod.properties名
	 */
	public static final String APPLICATION_PRO_PROD = "application-prod";
	/**
	 * druidDataSourceConfig模板
	 */
	public static final String TEMPLATE_DRUID_DATASOURCE_CONFIG="/templates/db-pool/druidDataSourceConfig.java";
	/**
	 * DruidDataSourceConfig类名
	 */
	public static final String DRUID_DATASOURCE_CONFIG = "DruidDataSourceConfig";
	/**
	 * myBatisPlusConfig模板
	 */
	public static final String TEMPLATE_MY_BATIS_PLUS_CONFIG = "/templates/mybatis-plus/myBatisPlusConfig.java";
	/**
	 * MyBatisPlusConfig类名
	 */
	public static final String MY_BATIS_PLUS_CONFIG = "MyBatisPlusConfig";
	/**
	 * jsp 文件路径
	 */
	public static final String TEMPLATE_JSP = "WEB-INF";
	/**
	 * /JSP
	 */
	public static final String JSP = "jsp";
	/**
	 * /templates
	 */
	public static final String TEMPLATES = "templates";
	/**
	 * /static
	 */
	public static final String STATIC = "static";
	/**
	 * /test
	 */
	public static final String TEST = "test";  
	/**
	 * redisConfig模板
	 */
	public static final String TEMPLATE_REDIS_CONFIG = "/templates/redis/redisConfig.java";   
	/**
	 * RedisConfig类名
	 */
	public static final String REDIS_CONFIG = "RedisConfig";
	/**
	 * redisService模板
	 */
	public static final String TEMPLATE_REDIS_SERVICE = "/templates/redis/redisService.java";   
	/**
	 * RedisService类名
	 */
	public static final String REDIS_SERVICE = "RedisService";
	/**
	 * redisServiceImpl模板
	 */
	public static final String TEMPLATE_REDIS_SERVICE_IMPL = "/templates/redis/redisServiceImpl.java";   
	/**
	 * RedisServiceImpl类名
	 */
	public static final String REDIS_SERVICE_IMPL = "RedisServiceImpl";
	/**
	 * mongoDBService模板
	 */
	public static final String TEMPLATE_MONGODB_SERVICE = "/templates/mongodb/mongoDBService.java";   
	/**
	 * MongoDBService类名
	 */
	public static final String MONGODB_SERVICE = "MongoDBService";
	/**
	 * mongoDBServiceImpl模板
	 */
	public static final String TEMPLATE_MONGODB_SERVICE_IMPL = "/templates/mongodb/mongoDBServiceImpl.java";   
	/**
	 * MongoDBServiceImpl类名
	 */
	public static final String MONGODB_SERVICE_IMPL = "MongoDBServiceImpl";
	/**
	 * mongoDB page模板
	 */
	public static final String TEMPLATE_MONGODB_PAGE = "/templates/mongodb/page.java";   
	/**
	 * mongoDB Page类名
	 */
	public static final String MONGODB_PAGE = "Page";
	/**
	 * mongoDB reflectionUtils模板
	 */
	public static final String TEMPLATE_MONGODB_REFLECTIONUTILS = "/templates/mongodb/reflectionUtils.java";   
	/**
	 * mongoDB ReflectionUtils类名
	 */
	public static final String MONGODB_REFLECTIONUTILS = "ReflectionUtils";
	/**
	 * Mail 类名
	 */
	public static final String MAIL = "Mail";
	/**
	 * mail 模板
	 */
	public static final String TEMPLATE_MAIL = "/templates/mail/mail.java";
	/**
	 * MailService 类名
	 */
	public static final String MAIL_SERVICE = "MailService";
	/**
	 * mailService 模板
	 */
	public static final String TEMPLATE_MAIL_SERVICE = "/templates/mail/mailService.java";
	/**
	 * MailServiceImpl 类名
	 */
	public static final String MAIL_SERVICE_IMPL = "MailServiceImpl";
	/**
	 * mailServiceImpl 模板
	 */
	public static final String TEMPLATE_MAIL_SERVICE_IMPL = "/templates/mail/mailServiceImpl.java";
	/**
	 * ShiroConfig 类名
	 */
	public static final String SHIRO_CONFIG = "ShiroConfig";
	/**
	 * shiroConfig 模板
	 */
	public static final String TEMPLATE_SHIRO_CONFIG = "/templates/shiro/shiroConfig.java";
	/**
	 * ShiroRealm类名
	 */
	public static final String SHIRO_REALM = "ShiroRealm";
	/**
	 * shiroRealm 模板
	 */
	public static final String TEMPLATE_SHIRO_REALM = "/templates/shiro/shiroRealm.java";
	/**
	 * ehcache-shiro.xml 名
	 */
	public static final String EHCACHE_SHIRO = "ehcache-shiro";
	/**
	 * ehcache-shiro.xml 模板
	 */
	public static final String TEMPLATE_EHCACHE_SHIRO = "/templates/shiro/ehcache-shiro.xml";
	/**
	 * ShiroTagFreemarkerConfig 类名
	 */
	public static final String SHIRO_TAG_FREEMARKER_CONFIG = "ShiroTagFreemarkerConfig";
	/**
	 * shiroTagFreemarkerConfig.java 模板
	 */
	public static final String TEMPLATE_SHIRO_TAG_FREEMARKER_CONFIG = "/templates/shiro/shiroTagFreemarkerConfig.java";
	/**
	 * ShiroUtils类名
	 */
	public static final String SHIRO_UTILS = "ShiroUtils";
	/**
	 * shiroUtils 模板
	 */
	public static final String TEMPLATE_SHIRO_UTILS = "/templates/shiro/shiroUtils.java";
	/**
	 * ScheduleConfig类名
	 */
	public static final String SCHEDULE_CONFIG = "ScheduleConfig";
	/**
	 * scheduleConfig 模板
	 */
	public static final String TEMPLATE_SCHEDULE_CONFIG = "/templates/schedule/scheduleConfig.java";
	/**
	 * DynamicScheduleTask类名
	 */
	public static final String SCHEDULE_DYNAMIC_TASK = "DynamicScheduleTask";
	/**
	 * dynamicScheduleTask 模板
	 */
	public static final String TEMPLATE_SCHEDULE_DYNAMIC_TASK = "/templates/schedule/dynamicScheduleTask.java";
	/**
	 * QuartzConfig类名
	 */
	public static final String QUARTZ_CONFIG = "QuartzConfig";
	/**
	 * quartzConfig 模板
	 */
	public static final String TEMPLATE_QUARTZ_CONFIG = "/templates/quartz/quartzConfig.java";
	/**
	 * QuartzService类名
	 */
	public static final String QUARTZ_SERVICE = "QuartzService";
	/**
	 * quartzService 模板
	 */
	public static final String TEMPLATE_QUARTZ_SERVICE = "/templates/quartz/quartzService.java";
	/**
	 * QuartzServiceImpl类名
	 */
	public static final String QUARTZ_SERVICE_IMPL = "QuartzServiceImpl";
	/**
	 * quartzServiceImpl 模板
	 */
	public static final String TEMPLATE_QUARTZ_SERVICE_IMPL = "/templates/quartz/quartzServiceImpl.java";
	/**
	 * quartz.properties名
	 */
	public static final String QUARTZ = "quartz";
	/**
	 * quartz.properties 模板
	 */
	public static final String TEMPLATE_QUARTZ = "/templates/quartz/quartz.properties";
	/**
	 * TaskInfo类名
	 */
	public static final String QUARTZ_TASKINFO = "TaskInfo";
	/**
	 * taskInfo 模板
	 */
	public static final String TEMPLATE_QUARTZ_TASKINFO = "/templates/quartz/taskInfo.java";
	/**
	 * TaskJob类名
	 */
	public static final String QUARTZ_TASKJOB = "TaskJob";
	/**
	 * taskJob 模板
	 */
	public static final String TEMPLATE_QUARTZ_TASKJOB = "/templates/quartz/taskJob.java";
	/**
	 * tables_oracle.sql 名
	 */
	public static final String QUARTZ_TABLES_ORACLE = "tables_oracle";
	/**
	 * tables_oracle.sql 模板
	 */
	public static final String TEMPLATE_QUARTZ_TABLES_ORACLE = "/templates/quartz/db-tables/tables_oracle.sql";
	/**
	 * tables_mysql_innodb.sql 名
	 */
	public static final String QUARTZ_TABLES_MYSQL = "tables_mysql_innodb";
	/**
	 * tables_mysql_innodb.sql 模板
	 */
	public static final String TEMPLATE_QUARTZ_TABLES_MYSQL = "/templates/quartz/db-tables/tables_mysql_innodb.sql";
	/**
	 * tables_sqlServer.sql 名
	 */
	public static final String QUARTZ_TABLES_SQL_SERVER = "tables_sqlServer";
	/**
	 * tables_sqlServer.sql 模板
	 */
	public static final String TEMPLATE_QUARTZ_TABLES_SQL_SERVER = "/templates/quartz/db-tables/tables_sqlServer.sql";

	/**
	 * ActiveMQConfig名
	 */
	public static final String ACTIVEMQ_CONFIG = "ActiveMQConfig";
	/**
	 * activeMQConfig.java 模板
	 */
	public static final String TEMPLATE_ACTIVEMQ_CONFIG = "/templates/activemq/activeMQConfig.java";
	/**
	 * ActiveMQConsumer名
	 */
	public static final String ACTIVEMQ_CONSUMER = "ActiveMQConsumer";
	/**
	 * activeMQConsumer.java 模板
	 */
	public static final String TEMPLATE_ACTIVEMQ_CONSUMER = "/templates/activemq/activeMQConsumer.java";
	/**
	 * ActiveMQProducer名
	 */
	public static final String ACTIVEMQ_PRODUCER = "ActiveMQProducer";
	/**
	 * activeMQProducer.java 模板
	 */
	public static final String TEMPLATE_ACTIVEMQ_PRODUCER = "/templates/activemq/activeMQProducer.java";
	/**
	 * KafkaConsumer名
	 */
	public static final String KAFKA_CONSUMER = "KafkaConsumer";
	/**
	 * kafkaConsumer.java 模板
	 */
	public static final String TEMPLATE_KAFKA_CONSUMER = "/templates/kafka/kafkaConsumer.java";
	/**
	 * KafkaProducer名
	 */
	public static final String KAFKA_PRODUCER = "KafkaProducer";
	/**
	 * kafkaProducer.java 模板
	 */
	public static final String TEMPLATE_KAFKA_PRODUCER = "/templates/kafka/kafkaProducer.java";

	/**
	 * RabbitMQConfig名
	 */
	public static final String RABBITMQ_CONFIG = "RabbitMQConfig";
	/**
	 * rabbitMQConfig.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_CONFIG = "/templates/rabbitmq/rabbitMQConfig.java";
	/**
	 * RabbitMQDirectProducer名
	 */
	public static final String RABBITMQ_DIRECT_PRODUCER = "RabbitMQDirectProducer";
	/**
	 * rabbitMQDirectProducer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_DIRECT_PRODUCER = "/templates/rabbitmq/direct/rabbitMQDirectProducer.java";
	/**
	 * RabbitMQDirectConsumer名
	 */
	public static final String RABBITMQ_DIRECT_CONSUMER = "RabbitMQDirectConsumer";
	/**
	 * rabbitMQDirectConsumer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_DIRECT_CONSUMER = "/templates/rabbitmq/direct/rabbitMQDirectConsumer.java";
	/**
	 * RabbitMQFanoutConsumer1名
	 */
	public static final String RABBITMQ_FANOUT_CONSUMER_1 = "RabbitMQFanoutConsumer1";
	/**
	 * rabbitMQFanoutConsumer1.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_FANOUT_CONSUMER_1 = "/templates/rabbitmq/fanout/rabbitMQFanoutConsumer1.java";
	/**
	 * RabbitMQFanoutConsumer2名
	 */
	public static final String RABBITMQ_FANOUT_CONSUMER_2 = "RabbitMQFanoutConsumer2";
	/**
	 * rabbitMQFanoutConsumer2.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_FANOUT_CONSUMER_2 = "/templates/rabbitmq/fanout/rabbitMQFanoutConsumer2.java";
	/**
	 * RabbitMQFanoutProducer名
	 */
	public static final String RABBITMQ_FANOUT_PRODUCER = "RabbitMQFanoutProducer";
	/**
	 * rabbitMQFanoutProducer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_FANOUT_PRODUCER = "/templates/rabbitmq/fanout/rabbitMQFanoutProducer.java";
	/**
	 * RabbitMQTopicProducer名
	 */
	public static final String RABBITMQ_TOPIC_PRODUCER = "RabbitMQTopicProducer";
	/**
	 * rabbitMQTopicProducer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_TOPIC_PRODUCER = "/templates/rabbitmq/topic/rabbitMQTopicProducer.java";
	/**
	 * RabbitMQTopicConsumer名
	 */
	public static final String RABBITMQ_TOPIC_CONSUMER = "RabbitMQTopicConsumer";
	/**
	 * rabbitMQTopicConsumer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_TOPIC_CONSUMER = "/templates/rabbitmq/topic/rabbitMQTopicConsumer.java";
	/**
	 * RabbitMQTopicConsumers名
	 */
	public static final String RABBITMQ_TOPIC_CONSUMERS = "RabbitMQTopicConsumers";
	/**
	 * rabbitMQTopicConsumers.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_TOPIC_CONSUMERS = "/templates/rabbitmq/topic/rabbitMQTopicConsumers.java";
	/**
	 * table_doc.xml 模板名
	 */
	public static final String TABLE_DOC = "tables_doc";
	/**
	 * table_doc.xml 模板
	 */
	public static final String TEMPLATE_TABLE_DOC = "/templates/tables-doc/tables_doc.xml";
	/**
	 * BeetlTemplateConfig名
	 */
	public static final String BEETL_TEMPLATE_CONFIG = "BeetlTemplateConfig";
	/**
	 * BeetlTemplateConfig.java 模板
	 */
	public static final String TEMPLATE_BEETL_TEMPLATE_CONFIG = "/templates/beetlsql/beetlTemplateConfig.java";
	/**
	 * BeetlsqlConfig名
	 */
	public static final String BEETLSQL_CONFIG = "BeetlsqlConfig";
	/**
	 * BeetlsqlConfig.java 模板
	 */
	public static final String TEMPLATE_BEETLSQL_CONFIG = "/templates/beetlsql/beetlsqlConfig.java";

}
